iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
0

函式


何謂函式?函式我會把它形容成一個小盒子,而這個盒子裡面放著各式各樣不同的東西,有的時候你需要加法運算,可以呼叫加法小幫手,需要乘法運算就可以呼叫乘法小幫手。每個盒子裡面都裝著不同的特性,這樣在撰寫程式的時候就不用重複寫同樣的程式碼。

那函式的命名規則是什麼呢?
首先開頭必須以func為名,後面自定義一個函式的名稱,通常名稱的部份建議命名有意義的,這是什麼意思呢?就是可以讓你在呼叫函式之前,可以透過函式名稱就明白這個函式是做什麼用的。不過話雖如此,由於敝人的英文程度大概跟小學生差不多,所以我常常也沒辦法貫徹這件事情,但至少我們知道有這樣的規則,以及朝著這個目標前進,一步步讓自己的code越來越漂亮。其實Swift本身支援中文的命名,所以用自己的母語去命名函式名稱肯定很直覺,如下圖。
https://ithelp.ithome.com.tw/upload/images/20190924/20120063TOs0IORaU7.png
不過我幾乎沒看過有人code裡面有用中文去命名的,所以大家應該還是比較喜歡用英文命名吧?因此像我這種英文不好的人,如果未來想要以coding當做職業,勢必還是得把英文學好的:) 所以上面的例子只是告訴你,其實中文命名是支援的,不過實際上幾乎沒有人這樣做。回到程式碼的部份,因為這個函式是回傳乘法的部份,而乘法就是數字相乘,所以需要一個回傳值,這個回傳值當然就必須是Int,因此在上面的程式碼會看到 -> Int這個地方就是把return a * b的結果回傳。而看到()小括弧裡面的a:Int, b:Int就是這個函式的參數與參數型別,在看到下面乘法(a: 10, b: 5)就是呼叫乘法這個函式,並且填上a,b的值,才算是完整的呼叫。因為這個乘法函式有外部名稱,所以當被呼叫的時候一定要傳入參入,否則會出現error。

另外也可以在設定函式的時候就給予預設的參數值,這樣的話在呼叫函式時也可以選擇不輸入參數值,此時的函式就會回傳預設的值,如下圖。
https://ithelp.ithome.com.tw/upload/images/20190924/20120063AiqAtzRMS7.png

一般傳入的變數不會改變其本身的值,如下圖。
https://ithelp.ithome.com.tw/upload/images/20190924/20120063qL98fYYL6Z.png

不過如果有改變的需求,此時就可以用輸入輸出參數,只要在型別前面加上inout即可。因為函式裡的參數本身是let,也就是不可以改變其值,所以如果寫a = a * 2,會出現錯誤,此時就需要透過inout讓這個值變成可輸出輸入,就可以把結果回傳到原本傳入的number。
https://ithelp.ithome.com.tw/upload/images/20190924/20120063EGfTkZe4uS.png


上一篇
從零開始的學習之旅-Day8
下一篇
從零開始的學習之旅-Day10
系列文
【自我挑戰】一步一腳印,每天進步一點的Swift自學之路。11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言